﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

void BubblePointer(int* p, int len)
{
	for (int i = 0; i < len - 1; i++)
	{
		for (int j = 0; j < len - 1 - i; j++)
		{
			//*(p+j) <==> p[j]
			if (*(p + j) < *(p + j + 1))
			{
				int temp = *(p + j);
				*(p + j) = *(p + j + 1);
				*(p + j + 1) = temp;
			}
		}
	}
}

//main78：案例：指针实现冒泡排序
int main78()
{
	int arr[10] = { 4,9,10,3,5,7,1,8,2,6 };

	//3.数组名arr和指针p的区别：数组名arr可以通过sizeof，求出数组arr的大小。而指针p只包含数组的首地址信息。
	int* p = arr;
	printf("1.输出数组arr的内存大小：%d\n", sizeof(arr));//40
	printf("2.输出指针变量p的内存大小，实际是int*指针类型的大小：%d\n", sizeof(p));//4

	int len = sizeof(arr) / sizeof(arr[0]);//10
	//BubblePointer(arr, len);
	BubblePointer(p, len);

	for (int i = 0; i < 10; i++)
	{
		printf("4.输出数组arr的元素：%d\n", arr[i]);//10 9 ... 2 1
	}

	system("pause");
	return EXIT_SUCCESS;
}